A RAID storage system typically includes a RAID controller and a plurality of storage devices, such as disk drives. A collection of multiple same sized segments are typically although not necessarily stored on separate storage devices. The size of each segment is denoted as s. The collection of segments is called a “stripe”, and the number of segments in a stripe is denoted as n. Each stripe comprises k segments of the actual data and m segment(s) of parity data (also known as redundancy data). However, for simplicity's sake the term stripe is also used to refer to the data segments in the collection, without the parity segment(s).
In several well known RAID erasure codes, to facilitate parity computation, each segment in the stripe is split into w same-size packets, whose size is denoted as x, such that w*x=s, where s is the segment size. Such RAID erasure codes may be used in RAID data storage. The computed parity data may be used, for instance, to recover lost data in case of failure.
In a RAID 6 protection scheme, the number of parity segments, m, is 2. The calculation of one of the parity segments, P, is typically although not necessarily based on a XOR based function with the parity segment, P, resulting from the XOR of the k data segments. The other parity segment, Q, is computed using a RAID erasure code. The type of RAID erasure code may vary depending on the implementation.